package com.wn.date20190806ATM;


/**
 * 全局，存储账户
 * @author song
 *
 */
public class Gloabl
{
	public static User[] users=new User[10];
	private static int userCount = 0;// 记录有效用户数
//	private Gloabl()
//	{
//		
//	}
	/**
	 * 获取已登录的用户信息
	 */
	public static User getLoginUser()
	{
		for(int i=0;i<size();i++)
		{
			if(Gloabl.users[i].isLogined()==true)
				return Gloabl.users[i];
		}
		return null;
	}
	/**
	 * 匹配账户是否存在，返回user,为匹配到返回null
	 * 
	 * @param account
	 * @return
	 */
	public static User matchUser(String account)
	{
		for (int i = 0; i < Gloabl.size(); i++)
		{
			// 匹配账户
			if (Gloabl.users[i].getAccount().equals(account))
			{
				return Gloabl.users[i];
			}
		}
		return null;
	}
	/**
	 * 返回实际长度
	 */
	public static int size()
	{
		return userCount;
	}
	/**
	 * 定义方法add（User）将用户依次增加到users中, 新建的对象
	 * 当数组已满时，产生一个新的大小为原数组1.5倍的数组(扩容)，
	 * @param us 用户，数量可变
	 */
	public static void add(User... us)
	{
		// 判空
		if(us==null)
		{
			System.out.println("参数错误,添加失败");
			return;
		}
		for(User u:us)
		{
			if(u==null)
			{
				System.out.println("参数错误，添加失败");
				return;
			}
		}
		
		User[] plusUsers=new User[users.length];//临时数组
		// 如果大于用户数组长度扩容
		while((us.length+userCount)>plusUsers.length)
		{
			// 扩容1.5倍
			plusUsers=new User[(int)(plusUsers.length*1.5)];
		}
		// 将users中用户赋值给plus数组
		for(int i=0;i<userCount;i++)
		{
			plusUsers[i]=new User(users[i]);
		}
		
		// 添加
		for(User u:us)
		{
			plusUsers[userCount]=new User(u);
			userCount++;
		}
		System.out.println("添加成功");
		// users指向扩容数组
		users=plusUsers;
	}
	
	
}
